// 权限控制
// 引入 router
import router from '@/router'
import store from '@/store'

// 登录权限控制
// 导航的全局前置守卫
// 白名单
const WHITE_LIST = ['/login', '/404']
router.beforeEach((to, from, next) => {
  // to：要访问的页面路由信息
  // from：即将离开的页面的路由信息
  // next：控制路由跳转的函数
  const token = store.state.user.token
  if (token) {
    // token 存在，说明已经登录
    if (to.path === '/login') {
      // 要去的是登录页，给他强制跳转到后台主页
      next('/')
    } else {
      // 去的不是登录页，直接放行
      next()
    }
  } else {
    // token 不存在，还没有登录
    if (WHITE_LIST.includes(to.path)) {
      // 要去的页面是白名单里面的页面，直接放行
      next()
    } else {
      // 要去的页面不在白名单里面，强制跳转到登录页
      next('/login')
    }
  }
})
